document.addEventListener('DOMContentLoaded', function() {
    const registerForm = document.getElementById('register-form');
    
    if (registerForm) {
        registerForm.addEventListener('submit', async function(e) {
            e.preventDefault();
            
            // 获取表单数据
            const username = document.getElementById('username').value;
            const password = document.getElementById('password').value;
            const confirmPassword = document.getElementById('confirmPassword').value;
            const phone = document.getElementById('phone').value;
            const email = document.getElementById('email').value;
            
            // 验证密码
            if (password !== confirmPassword) {
                showError('两次输入的密码不一致');
                return;
            }
            
            // 验证手机号
            if (!validatePhone(phone)) {
                showError('请输入正确的手机号');
                return;
            }
            
            // 验证邮箱
            if (!validateEmail(email)) {
                showError('请输入正确的邮箱地址');
                return;
            }
            
            try {
                const response = await fetch('http://localhost:8080/register', {
                    method: 'POST',
                    headers: {
                        'Content-Type': 'application/json'
                    },
                    body: JSON.stringify({
                        username,
                        password,
                        phone,
                        email
                    })
                });
                
                const result = await response.json();
                
                if (result.code === 200) {
                    // 注册成功，直接保存用户信息
                    const userData = result.data;
                    
                    // 保存用户ID和用户信息到本地存储
                    setItemWithExpiry('userId', userData.userId, 7 * 24 * 60); // 7天过期
                    setItemWithExpiry('username', userData.username, 7 * 24 * 60); // 7天过期
                    setItemWithExpiry('userInfo', JSON.stringify({
                        username: userData.username,
                        phone: userData.phone,
                        email: userData.email,
                        avatar: userData.avatar || 'images/avatar.jpg'
                    }), 7 * 24 * 60);
                    
                    // 设置登录状态
                    setItemWithExpiry('isLoggedIn', 'true', 7 * 24 * 60); // 7天过期
                    
                    // 显示成功消息
                    alert('注册成功！');
                    
                    // 直接跳转到首页
                    window.location.href = 'index.html';
                } else {
                    showError(result.message || '注册失败，请稍后重试');
                }
            } catch (error) {
                console.error('注册失败:', error);
                showError('注册失败，请稍后重试');
            }
        });
    }
});

// 显示错误信息
function showError(message) {
    // 移除旧的错误信息
    const oldError = document.querySelector('.error-message');
    if (oldError) {
        oldError.remove();
    }
    
    // 创建新的错误信息
    const errorDiv = document.createElement('div');
    errorDiv.className = 'error-message';
    errorDiv.textContent = message;
    
    // 插入到表单顶部
    const form = document.getElementById('register-form');
    form.insertBefore(errorDiv, form.firstChild);
}

// 验证手机号
function validatePhone(phone) {
    const phoneRegex = /^1[3-9]\d{9}$/;
    return phoneRegex.test(phone);
}

// 验证邮箱
function validateEmail(email) {
    const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
    return emailRegex.test(email);
}

// 添加过期时间检查函数
function isDataExpired(timestamp) {
    if (!timestamp) return true;
    const now = new Date().getTime();
    return now > timestamp;
}

// 添加带过期时间的获取函数
function getItemWithExpiry(key) {
    const itemStr = localStorage.getItem(key);
    if (!itemStr) return null;
    
    const item = JSON.parse(itemStr);
    if (isDataExpired(item.timestamp)) {
        localStorage.removeItem(key);
        return null;
    }
    return item.value;
}

// 添加带过期时间的设置函数
function setItemWithExpiry(key, value, ttl) {
    const now = new Date();
    const item = {
        value: value,
        timestamp: now.getTime() + (ttl * 60 * 1000) // ttl 单位为分钟
    };
    localStorage.setItem(key, JSON.stringify(item));
} 